package enumAndAnnotation;

/**
 * 枚举练习
 */
public class EnumExercise03 {

    public static void main(String[] args) {
        /*
            1)在 Frock 类中声明私有的静态属性 currentNum [int类型]，初始值 100000，作为衣服出场的序列号起始值
            2)声明公有的静态方法 getNextNum，作为生成上衣唯一序列号的方法。每调用一次，将 currentNum增加100，并作为返回值
            3)在TestFrock类的main方法中，分两次调用 getNextNum方法，获取序列号并打印输出
            4)在Frock类中声明 serialNumber(序列号属性)，并提供对应的get方法
            5)在Frock类的构造器中，通过调用getNextNum方法为 Frock 对象获取唯一序列号，赋给serialNumber属性
            6)在TestFrock类的main方法中，分别创建三个Frock对象，并打印三个对象的序列号，验证是否为按100递增
         */

        int nextNum = Frock.getNextNum();   //100100
        int nextNum1 = Frock.getNextNum();  //100200
        System.out.println(nextNum + " " + nextNum1);

        Frock frock1 = new Frock();
        Frock frock2 = new Frock();
        System.out.println(frock1.getSerialNumber());//100300
        System.out.println(frock2.getSerialNumber());//100400
    }
}

class Frock {

    private static int currentNum = 100000; // 序列号初始值

    private int serialNumber;

    public Frock() {
        int nextNum = getNextNum();
        serialNumber = nextNum;
    }

    public static int getNextNum() {
        currentNum += 100;
        return currentNum;
    }

    public int getSerialNumber() {
        return serialNumber;
    }
}